package com.wx.md.enums;

import com.baomidou.mybatisplus.extension.api.IErrorCode;

/**
 * 响应码
 */
public enum ResponseCode implements IErrorCode {
    /**
     * 这个要和前段约定好
     *code=1：服务器已成功处理了请求。 通常，这表示服务器提供了请求的网页。
     *code=2：（授权异常） 请求要求身份验证。 客户端需要跳转到登录页面重新登录
     *code=3： 无权限访问资源
     *code=-1：(凭证过期) 客户端请求刷新凭证接口
     *code=0：表示请求失败，只提示，不跳转，2 是跳转
     *
     */
    SUCCESS(0,"操作成功"),
    SYSTEM_ERROR(50000,"系统异常请稍后再试"),
    DATA_ERROR(50001,"参数异常"),
    METHOD_IDENTITY_ERROR(50002,"数据校验异常"),
    ACCOUNT_ERROR(50003,"该账号不存在"),
    ACCOUNT_EXISTS_ERROR(50004,"该账号已存在"),
    ACCOUNT_LOCK(50005,"该账号被锁定,请联系系统管理员"),
    ACCOUNT_PASSWORD_ERROR(50006,"用户名密码不匹配"),
    TOKEN_ERROR(50007,"用户未登录，请重新登录"),
    TOKEN_NOT_NULL(50008,"token 不能为空"),
    SHIRO_AUTHENTICATION_ERROR(50009,"用户认证异常"),
    ACCOUNT_HAS_DELETED_ERROR(500010,"该账号已被删除，请联系系统管理员"),
    TOKEN_PAST_DUE(500011,"登录失效,请重新登录"),
    TOKEN_EXISTS(500012,"账号异地登录，你已被迫退出"),
    NOT_PERMISSION(3,"没有权限访问该资源"),
    OPERATION_ERROR(0,"操作失败"),
    OPERATION_MENU_PERMISSION_CATALOG_ERROR(0,"操作后的菜单类型是目录，所属菜单必须为默认顶级菜单或者目录"),
    OPERATION_MENU_PERMISSION_MENU_ERROR(0,"操作后的菜单类型是菜单，所属菜单必须为目录类型"),
    OPERATION_MENU_PERMISSION_BTN_ERROR(0,"操作后的菜单类型是按钮，所属菜单必须为菜单类型"),
    OPERATION_MENU_PERMISSION_URL_NOT_NULL(0,"菜单权限的url不能为空"),
    OPERATION_MENU_PERMISSION_URL_PERMS_NULL(0,"菜单权限的标识符不能为空"),
    OPERATION_MENU_PERMISSION_URL_METHOD_NULL(0,"菜单权限的请求方式不能为空"),
    ACCOUNT_LOCK_TIP(2,"该账号被锁定,请联系系统管理员"),
    OPERATION_MENU_PERMISSION_UPDATE(0,"操作的菜单权限存在子集关联不允许变更"),
    ROLE_PERMISSION_RELATION(0, "该菜单权限存在子集关联，不允许删除"),
    NOT_PERMISSION_DELETED_DEPT(0,"该组织机构下还关联着用户，不允许删除"),
    OLD_PASSWORD_ERROR(0,"旧密码不匹配"),
    OPERATION_MENU_PERMISSION_URL_CODE_NULL(0,"菜单权限的按钮标识不能为空"),
    ;

    private long code;
    private String message;

    ResponseCode(long code, String message){
        this.code = code;
        this.message = message;
    }

    @Override
    public long getCode() {
        return code;
    }

    @Override
    public String getMsg() {
        return message;
    }
}
